草庐IT

c++ - 虚拟的概念

全部标签

c++ - 如何检查 configure.ac 中的特定 gcc 功能

比如gcc4.7有一个新特性——Wnarrowing。在configure.ac中,如何测试当前gcc是否支持某个功能?有一个file在gnulibc中,但对我来说意义不大。 最佳答案 gcc和clang都支持-W[no-]narrowing和-W[no-]error=narrowing选项。使用-std=c++11,gcc默认发出一个警告,而clang默认发出一个错误。即使你只提到gcc,我认为你可以将功能检查扩展到像clang这样试图提供相同选项和扩展的编译器。这可能也包括英特尔的icc。假设您选择了带有AC_PROG_CXX的

c++ - 值初始化 vs Calloc vs 手动初始化速度

哪个最快?我尝试用这个基本容量测试三种方法的速度:#include"stdafx.h"#include"stdlib.h"#include"stdio.h"#include"time.h"int_tmain(intargc,_TCHAR*argv[]){constunsignedlonglongARR_SIZ=0x4fffffff;clock_tval_init_dur,calloc_dur,manual_dur;clock_tcur=clock();char*val_init=newchar[ARR_SIZ]();clock_tafter=clock();val_init_dur=a

c++ - 如果 Matlab 以 GUI 启动,如何从 MEX 文件中检查

我已经尝试自己找到这个问题的答案,并且askedmyquestionatMatlabCentral没有得到任何回应。现在我希望你们中的一个人可以帮助我解决我的问题。这是我的(改进的)问题:标题已经很好地描述了我必须做的事情:我必须从MEX文件检查Linux上的MatlabR2013a是否已在有或没有GUI的情况下启动。背景:我从Matlab运行一个C/C++程序(我可以使用源代码,但不允许更改它们,只能在必要时添加新文件!)。我写了几个(附加的)MEX文件,允许程序使用mexCallMATLAB评估m文件。现在我需要知道我必须将C/C++程序的输出定向到哪里,这取决于Matlab是在有

c++ - 如何将 ogg 音频文件解码为原始音频数据?

关闭。这个问题不符合StackOverflowguidelines.它目前不接受答案。要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于StackOverflow来说是偏离主题的,因为它们往往会吸引自以为是的答案和垃圾邮件。相反,请描述问题以及迄今为止为解决该问题所做的工作。关闭8年前。Improvethisquestion我有.ogg文件,我想将其解码为原始音频数据。我阅读了libvorbis的文档,但它非常简短且不清楚。我不明白!我应该使用什么libvorbis或libogg?还是别的?

c++ - 我们是否需要保护单个赋值或 if 线程安全语句

假设我有:staticintwrite_log=0;void*logger__run(void*arg){//loggerthreadexecution.while(1){//getlogmessagefromsharedqueue.if(write_log){//justcheckingwrite_logvalue.//writelogstillwrite_logistrue.}//destroylogmessage.}}voidlogger__set_logging(intp_write_log){//otherthreadscanstart/stoploggingbylogger

c++ - gdb/lldb 调用一个函数并在其中中断

我在一个长期运行的程序中有一个全局函数:inttest(){inta=12;intc=10;printf("a=%d",a);a+=c;printf("a=%d",a);returna;}我调试程序并中断,然后发出以下命令:(lldb)calltest()a=12a=22(int)$0=22(lldb)我希望它在我点击calltest()之后每一行都在test()方法中中断,而不是立即返回结果。任何人都知道该怎么做?------------------------------------下面回答------------------------------------@JasonMole

c++ - std::forward_list 和序列概念要求

标准委员会选择为std::forward_list实现API是否有某种原因使其不满足序列容器概念要求?Sequence概念要求指定容器必须与以下表达式兼容:c.insert(it,v);//insertatpositionc.insert(it,n,v);//fillinsertc.insert(it,begin,end);//insertrange...其中it是一个迭代器,v是一个元素,n是一个整数,begin/end是一个迭代器范围。这个API没有理由不能用于单链表,因为insert函数需要一个迭代器起始位置。但出于某种原因,std::forward_list具有insert_a

(10)Hive的相关概念——文件格式和数据压缩

目录一、文件格式1.1 列式存储和行式存储1.1.1行存储的特点1.1.2列存储的特点1.2 TextFile1.3 SequenceFile1.4  Parquet1.5 ORC二、数据压缩 2.1 数据压缩-概述 2.1.1压缩的优点 2.1.2压缩的缺点2.2 Hive中压缩配置2.2.1 开启Map输出阶段压缩(MR引擎)2.2.2 开启Reduce输出阶段压缩2.3 Hive中压缩测试一、文件格式   Hive数据存储的本质还是HDFS,所有的数据读写都基于HDFS的文件来实现。为了提高对HDFS文件读写的性能,Hive提供了多种文件存储格式:TextFile、SequenceFil

c++ - 类 C 结构中自动字段重新排序的方法

有没有办法执行automaticfieldsreordering在类似C的结构中?我的意思是使用语言特性(C和C++的预处理器以及C++的模板/类型特征/等),这使得执行以下宏成为可能(类似Boost.Fusion的样式以适应结构):REARRANGE(StructureName,(int8_t)(FieldName1),(int32_t)(FieldName2),(int16_t)(FieldName3),(int32_t)(FieldName4));//isequivalentto(withoutlossofgenerality):structStructureName{int32

c++ - 将位解压缩为单精度 float 的最快方法

这是特定于平台的问题。速度至关重要。将一个字节解包到一个由8个单精度float组成的数组中以便零映射到零和一映射到一的最快方法是什么?我最终使用8位掩码和7位移位解压缩为8个int32,然后使用AVX指令将int32转换为float。我的平台是在支持AVX(但没有AVX2)的CPU上运行的Windows64位。编译器:VisualStudio2013。谢谢。 最佳答案 预处理不是更快吗?2^8的可能性已经差不多了,不过话又说回来,把它分成两部分,它只有2^4=16个变量。使数组包含16个“值”,其中每个值都是用4个具有正确值的flo